#ifndef SERPENT_H
#define SERPENT_H
/*------------------------------------------------------------------*/
/*																	*/
/*							serpent.h    							*/
/* 																	*/
/* 																	*/
/*------------------------------------------------------------------*/


/*------------------------------------------------------------------*/
/*																	*/
/*							Inclusions   							*/
/* 																	*/
/* 																	*/
/*------------------------------------------------------------------*/
#include "ElementL.h"
#include "Liste.h"
#include "position.h"
#include "constante.h"

/*------------------------------------------------------------------*/
/*																	*/
/*							structures  							*/
/* 																	*/
/* 																	*/
/*------------------------------------------------------------------*/
typedef struct sSerpent {

    Liste lSerp;
    int taille ;
    int nombreFruit;

} serpent;


void initSerpent(serpent *pSnake);
/*
    PROCEDURE PERMETTANT D'INITIALISER LE SERPENT
*/

void positionInitialeSerpent(serpent *pSnake,int * tab, int M);
/*
    PROCEDURE PERMETTANT DE POSITION LE SERPENT POUR DEMARRER LE JEU
*/

void libSerpent(serpent *snake);
/*
    PROCEDURE PERMETTANT DE LIBERER LA MEMOIRE OCCUPEE PAR LE SERPENT
*/

void deplacerDroite(serpent * snake, int * tab, int M,  int  *agTest, int *deplacement);
/*
    PROCEDURE PERMETTANT DE DEPLACER LE SERPENT VERS LA DROITE
    LE MOUVEMENT VERS LA DROITE EST IMPOSSIBLE SI LE SERPENT VIENT DE LA GAUCHE
*/

void deplacerGauche(serpent * snake, int * tab, int M,  int *agTest, int *deplacement);
/*
    PROCEDURE PERMETTANT DE DEPLACER LE SERPENT VERS LA GAUCHE
    LE MOUVEMENT VERS LA GAUCHE EST IMPOSSIBLE SI LE SERPENT VIENT DE LA DROITE
*/

void deplacerHaut(serpent * snake, int * tab, int M,  int  *agTest, int *deplacement);
/*
    PROCEDURE PERMETTANT DE DEPLACER LE SERPENT VERS LE HAUT
    LE MOUVEMENT VERS LE HAUT EST IMPOSSIBLE SI LE SERPENT VIENT DU BAS
*/

void deplacerBas(serpent * snake, int * tab, int M, int  *agTest, int *deplacement);
/*
    PROCEDURE PERMETTANT DE DEPLACER LE SERPENT VERS LE BAS
    LE MOUVEMENT VERS LE BAS EST IMPOSSIBLE SI LE SERPENT VIENT DU HAUT
*/

#endif
